common.skill

DML অপারেশনস (DML Operations)

Computer Programming - এপেক্স (Apex)
236
236

DML (Data Manipulation Language) Operations Salesforce ডেটাবেজে ডেটা যোগ, সংশোধন, মুছে ফেলা এবং রিকভারি করতে ব্যবহৃত হয়। DML অপারেশনস Apex কোডের মাধ্যমে রেকর্ড তৈরি, আপডেট, ডিলিট, ইনসার্ট, আপসার্ট এবং মার্জ করতে সহায়ক। Salesforce ডেটাবেজ ম্যানিপুলেশনে কার্যকরীভাবে DML অপারেশন ব্যবহার করা হয়।


DML অপারেশনের প্রকারভেদ

Salesforce-এ প্রধানত ছয় ধরনের DML অপারেশন রয়েছে:

  1. INSERT: নতুন রেকর্ড ডেটাবেজে যোগ করা হয়।
  2. UPDATE: বিদ্যমান রেকর্ডের ডেটা পরিবর্তন করা হয়।
  3. DELETE: বিদ্যমান রেকর্ড ডেটাবেজ থেকে মুছে ফেলা হয়।
  4. UPSERT: যদি রেকর্ড বিদ্যমান থাকে তাহলে আপডেট করা হয়, না থাকলে নতুন রেকর্ড যোগ করা হয়।
  5. MERGE: দুটি বা ততোধিক রেকর্ডকে একত্রে মিলিয়ে একটি রেকর্ড তৈরি করা হয়।
  6. UNDELETE: ডিলিট করা রেকর্ড পুনরুদ্ধার করা হয়।

DML অপারেশনস-এর উদাহরণ

প্রতিটি DML অপারেশনের জন্য উদাহরণগুলো নিম্নরূপ:

১. INSERT

INSERT অপারেশন ব্যবহার করে নতুন রেকর্ড ডেটাবেজে যোগ করা হয়।

উদাহরণ:

Account acc = new Account(Name = 'Acme Corporation');
insert acc;

এখানে একটি নতুন Account রেকর্ড তৈরি করে insert অপারেশনের মাধ্যমে ডেটাবেজে সেভ করা হয়েছে।

২. UPDATE

UPDATE অপারেশন ব্যবহার করে বিদ্যমান রেকর্ডের ডেটা পরিবর্তন করা হয়।

উদাহরণ:

Account acc = [SELECT Id, Name FROM Account WHERE Name = 'Acme Corporation' LIMIT 1];
acc.Name = 'Acme Inc.';
update acc;

এখানে Acme Corporation নামে বিদ্যমান Account রেকর্ডটির নাম পরিবর্তন করে Acme Inc. করা হয়েছে এবং update অপারেশনের মাধ্যমে সেভ করা হয়েছে।

৩. DELETE

DELETE অপারেশন বিদ্যমান রেকর্ড মুছে ফেলার জন্য ব্যবহৃত হয়।

উদাহরণ:

Account acc = [SELECT Id FROM Account WHERE Name = 'Acme Inc.' LIMIT 1];
delete acc;

এখানে Acme Inc. নামে Account রেকর্ডটি ডিলিট করা হয়েছে।

৪. UPSERT

UPSERT অপারেশন বিদ্যমান রেকর্ড আপডেট বা নতুন রেকর্ড ইনসার্ট করতে ব্যবহৃত হয়। এটি External Id ফিল্ড ব্যবহার করে রেকর্ড শনাক্ত করে।

উদাহরণ:

Account acc = new Account(External_Id__c = 'A123', Name = 'Global Corp');
upsert acc External_Id__c;

এখানে External_Id__c যদি A123 থাকে, তাহলে রেকর্ড আপডেট হবে; অন্যথায় নতুন রেকর্ড ইনসার্ট হবে।

৫. MERGE

MERGE অপারেশন ব্যবহার করে দুটি বা ততোধিক রেকর্ড একত্রে মিশিয়ে একটি রেকর্ড তৈরি করা যায়। সাধারণত এটি ডুপ্লিকেট রেকর্ড অপসারণের জন্য ব্যবহৃত হয়।

উদাহরণ:

Account masterAcc = [SELECT Id FROM Account WHERE Name = 'Main Account' LIMIT 1];
Account duplicateAcc = [SELECT Id FROM Account WHERE Name = 'Duplicate Account' LIMIT 1];
merge masterAcc duplicateAcc;

এখানে masterAcc এবং duplicateAcc রেকর্ড দুটি মার্জ করে একটি রেকর্ড তৈরি করা হয়েছে।

৬. UNDELETE

UNDELETE অপারেশন ব্যবহার করে ডিলিট হওয়া রেকর্ড পুনরুদ্ধার করা হয়। এটি শুধুমাত্র রিসাইকেল বিনে থাকা রেকর্ডের ক্ষেত্রেই প্রযোজ্য।

উদাহরণ:

List<Account> deletedAccounts = [SELECT Id FROM Account WHERE IsDeleted = true LIMIT 1 ALL ROWS];
undelete deletedAccounts;

এখানে IsDeleted = true হওয়া রেকর্ডগুলো undelete অপারেশন ব্যবহার করে পুনরুদ্ধার করা হয়েছে।


DML অপারেশনস-এর Best Practices

Bulk DML: একাধিক রেকর্ড প্রক্রিয়া করতে List ব্যবহার করে Bulk DML অপারেশন চালানো উচিত। এটি গভর্নর লিমিট অতিক্রম না করতে সহায়ক।

উদাহরণ:

List<Account> accounts = new List<Account>{
    new Account(Name = 'Account 1'),
    new Account(Name = 'Account 2')
};
insert accounts;

Try-Catch Block ব্যবহার: DML অপারেশন চালানোর সময় ত্রুটি মোকাবেলার জন্য try-catch ব্লক ব্যবহার করা উচিত।

উদাহরণ:

try {
    insert accounts;
} catch (DmlException e) {
    System.debug('DML Exception: ' + e.getMessage());
}

Partial DML (Database DML): Database.insert() বা Database.update() এর মতো DML মেথড ব্যবহার করে অপারেশনের আংশিক সফলতা নিশ্চিত করা যায়।

উদাহরণ:

Database.SaveResult[] results = Database.insert(accounts, false);
for (Database.SaveResult result : results) {
    if (result.isSuccess()) {
        System.debug('Record Inserted: ' + result.getId());
    } else {
        System.debug('Error: ' + result.getErrors()[0].getMessage());
    }
}

Governor Limits বোঝা: Salesforce-এর গভর্নর লিমিট মেনে DML অপারেশন চালানো উচিত। অতিরিক্ত DML অপারেশন এড়িয়ে চলা এবং প্রয়োজন অনুযায়ী Bulk DML ব্যবহার করা উচিত।

Hardcoded Ids এড়িয়ে চলা: রেকর্ডের Id হার্ডকোড না করে পরিবর্তনশীল ভ্যালু ব্যবহার করা উচিত।


সংক্ষেপে DML Operations

  • INSERT: নতুন রেকর্ড ইনসার্ট করতে ব্যবহৃত হয়।
  • UPDATE: বিদ্যমান রেকর্ড আপডেট করতে ব্যবহৃত হয়।
  • DELETE: বিদ্যমান রেকর্ড ডিলিট করতে ব্যবহৃত হয়।
  • UPSERT: রেকর্ড বিদ্যমান থাকলে আপডেট করে, না থাকলে ইনসার্ট করে।
  • MERGE: দুটি বা ততোধিক রেকর্ডকে একত্রিত করে।
  • UNDELETE: ডিলিট হওয়া রেকর্ড পুনরুদ্ধার করে।

এই DML অপারেশনগুলো Salesforce প্ল্যাটফর্মে ডেটা পরিচালনা ও ম্যানিপুলেশনে সহায়ক। DML অপারেশনস-এর Best Practices অনুসরণ করে কার্যকর এবং সিস্টেমের গভর্নর লিমিটের মধ্যে থেকে ডেটা প্রক্রিয়াজাত করা যায়।

common.content_added_by

DML (Data Manipulation Language) এর ধারণা

245
245

DML (Data Manipulation Language) হলো Salesforce Apex ভাষায় ডেটা সংশোধন বা প্রক্রিয়াকরণের জন্য ব্যবহৃত একটি ভাষা, যা Salesforce ডেটাবেজে রেকর্ড তৈরি, আপডেট, ডিলিট, বা পুনরুদ্ধার করতে ব্যবহৃত হয়। DML অপারেশনগুলো ডেটাবেজের উপর ডিরেক্ট অ্যাক্সেস দিয়ে ডেটা পরিবর্তন এবং প্রক্রিয়াকরণে সহায়ক।

DML অপারেশন Apex কোডের মধ্যে ব্যবহার করে Salesforce এর ডেটা মডেলকে সম্পূর্ণরূপে নিয়ন্ত্রণ করা যায়। DML এর মাধ্যমে অ্যাপ্লিকেশন ডেটাবেজে নির্দিষ্ট ডেটা তৈরি বা পরিবর্তন করতে পারে, যা ব্যবহারকারীদের কার্যক্রম এবং ব্যবসায়িক নিয়ম অনুসারে তথ্য আপডেট করতে সহায়ক।


DML এর প্রধান অপারেশনসমূহ

DML-এর প্রধান অপারেশনগুলো হলো:

  1. Insert: নতুন রেকর্ড ডেটাবেজে যোগ করে।
  2. Update: ডেটাবেজে থাকা বিদ্যমান রেকর্ড আপডেট করে।
  3. Delete: ডেটাবেজ থেকে রেকর্ড মুছে ফেলে।
  4. Undelete: মুছে ফেলা রেকর্ড পুনরুদ্ধার করে (যা Recycle Bin-এ থাকে)।
  5. Upsert: রেকর্ডের উপর নির্ভর করে insert বা update করে। যদি রেকর্ড বিদ্যমান থাকে তবে আপডেট করে, অন্যথায় নতুন রেকর্ড যোগ করে।
  6. Merge: একাধিক রেকর্ডকে একত্রিত করে একটি রেকর্ডে পরিণত করে (বিশেষত ডুপ্লিকেট রেকর্ডগুলো একত্রিত করার জন্য)।

DML এর সাধারণ উদাহরণ

১. Insert অপারেশন

Insert অপারেশনের মাধ্যমে নতুন রেকর্ড তৈরি করে ডেটাবেজে যোগ করা হয়।

Account newAccount = new Account(Name = 'Tech Solutions', Industry = 'Technology');
insert newAccount;
  • এখানে Account অবজেক্টে একটি নতুন রেকর্ড তৈরি করে insert কিওয়ার্ড দিয়ে সেটি ডেটাবেজে যোগ করা হয়েছে।

২. Update অপারেশন

Update অপারেশনের মাধ্যমে বিদ্যমান রেকর্ড আপডেট করা হয়।

Account existingAccount = [SELECT Id, Name FROM Account WHERE Name = 'Tech Solutions' LIMIT 1];
existingAccount.Industry = 'Software';
update existingAccount;
  • এখানে একটি বিদ্যমান Account রেকর্ডের Industry ফিল্ড আপডেট করা হয়েছে এবং update অপারেশন ব্যবহার করে সেটি ডেটাবেজে সেভ করা হয়েছে।

৩. Delete অপারেশন

Delete অপারেশনের মাধ্যমে বিদ্যমান রেকর্ড ডেটাবেজ থেকে মুছে ফেলা হয়।

Account deleteAccount = [SELECT Id FROM Account WHERE Name = 'Tech Solutions' LIMIT 1];
delete deleteAccount;
  • এখানে একটি Account রেকর্ড delete অপারেশন ব্যবহার করে ডেটাবেজ থেকে মুছে ফেলা হয়েছে।

৪. Undelete অপারেশন

Undelete অপারেশন ব্যবহার করে Recycle Bin-এ থাকা রেকর্ড পুনরুদ্ধার করা যায়।

Account restoreAccount = [SELECT Id FROM Account WHERE Name = 'Tech Solutions' LIMIT 1 ALL ROWS];
undelete restoreAccount;
  • এখানে পূর্বে ডিলিট করা Account রেকর্ডকে undelete অপারেশনের মাধ্যমে পুনরুদ্ধার করা হয়েছে।

৫. Upsert অপারেশন

Upsert অপারেশন ব্যবহার করে রেকর্ড আপডেট বা যোগ করা যায়।

Account accountRecord = new Account(Name = 'Tech Solutions', Industry = 'Technology');
upsert accountRecord Name;
  • এখানে যদি Name মানের Account রেকর্ড ডেটাবেজে বিদ্যমান থাকে তবে সেটি আপডেট হবে, অন্যথায় একটি নতুন রেকর্ড যোগ হবে।

৬. Merge অপারেশন

Merge অপারেশন দিয়ে একাধিক রেকর্ডকে একত্রিত করা যায়, বিশেষত ডুপ্লিকেট রেকর্ডের ক্ষেত্রে।

Account masterRecord = [SELECT Id FROM Account WHERE Name = 'Tech Solutions' LIMIT 1];
Account duplicateRecord1 = [SELECT Id FROM Account WHERE Name = 'Tech Solutions Duplicate 1' LIMIT 1];
Account duplicateRecord2 = [SELECT Id FROM Account WHERE Name = 'Tech Solutions Duplicate 2' LIMIT 1];
merge masterRecord duplicateRecord1 duplicateRecord2;
  • এখানে Tech Solutions নামে প্রধান Account রেকর্ডে দুইটি ডুপ্লিকেট রেকর্ড মার্জ করা হয়েছে।

DML অপারেশনের সুবিধা

  • ডেটা ম্যানিপুলেশন সহজ: ডেটাবেজের উপর সরাসরি অপারেশন চালাতে DML দ্রুত এবং সহজ উপায়।
  • ব্যবসায়িক নিয়ম প্রয়োগ: বিভিন্ন ব্যবসায়িক নিয়ম অনুযায়ী ডেটাবেজে ডেটা আপডেট এবং পরিবর্তন করা সহজ হয়।
  • ডুপ্লিকেট অপসারণ: Merge অপারেশন ব্যবহার করে ডুপ্লিকেট রেকর্ডগুলো একত্রিত করে ডেটার মান নিয়ন্ত্রণ করা যায়।
  • সহজ কোডিং: DML অপারেশনগুলো সরাসরি Apex কোডে ব্যবহৃত হয়, তাই ডেটা ম্যানিপুলেশন সহজ।

DML এবং SOQL এর পার্থক্য

বৈশিষ্ট্যDMLSOQL
মূল উদ্দেশ্যডেটা সংশোধন এবং ম্যানিপুলেশনডেটা অনুসন্ধান এবং পুনরুদ্ধার
অপারেশনInsert, Update, Delete, Upsert, Merge, UndeleteSELECT
ডেটা পরিবর্তনডেটা তৈরি, আপডেট, ডিলিট করতে ব্যবহৃতডেটা খুঁজে বের করতে ব্যবহৃত
ব্যবহার ক্ষেত্রডেটাবেজে নতুন ডেটা যোগ করা বা পরিবর্তনডেটাবেজ থেকে ডেটা সংগ্রহ করা

DML ব্যবহারের সতর্কতাসমূহ

  • গভর্নর লিমিট: Salesforce-এর গভর্নর লিমিট রয়েছে, যা DML অপারেশনের সংখ্যা সীমাবদ্ধ করে। এক্সিকিউশন কনটেক্সটে সর্বাধিক ১৫০টি DML অপারেশন চালানো যায়।
  • DML Exception Handling: DML অপারেশন চলাকালীন ত্রুটি ঘটলে DmlException তৈরি হয়। try-catch ব্লক ব্যবহার করে DML অপারেশনের ত্রুটি হ্যান্ডল করা উচিত।
  • Bulk DML Operations: যখন একাধিক রেকর্ডে DML অপারেশন চালানো হয়, তখন Bulk DML অপারেশন ব্যবহার করা উচিত, যা গভর্নর লিমিটের মধ্যে কাজ করে এবং পারফরম্যান্স বাড়ায়।

সংক্ষেপে

DML অপারেশন Salesforce-এর ডেটাবেজে ডেটা সংশোধন এবং ম্যানিপুলেশনের একটি গুরুত্বপূর্ণ টুল, যা Apex কোডে ডেটা প্রক্রিয়াকরণকে সহজ করে তোলে। Insert, Update, Delete, Undelete, Upsert, এবং Merge অপারেশনগুলো ডেটা সংশোধন, ডুপ্লিকেট অপসারণ, এবং ডেটা পুনরুদ্ধারে কার্যকরভাবে ব্যবহৃত হয়। DML অপারেশনগুলোর মাধ্যমে Salesforce ডেটাবেজের ডেটা সহজে এবং দ্রুত ম্যানেজ করা সম্ভব।

common.content_added_by

Insert, Update, Delete, Undelete, Merge অপারেশনস

267
267

Insert, Update, Delete, Undelete, এবং Merge অপারেশন Salesforce প্ল্যাটফর্মে ডেটা ম্যানিপুলেশনের জন্য ব্যবহৃত গুরুত্বপূর্ণ DML অপারেশন। প্রতিটি অপারেশন নির্দিষ্ট উদ্দেশ্য পূরণের জন্য ব্যবহার করা হয়, যেমন ডেটা যোগ, সংশোধন, মুছে ফেলা, পুনরুদ্ধার এবং একত্রিত করা।


১. Insert Operation

Insert অপারেশন ব্যবহার করে Salesforce ডেটাবেজে নতুন রেকর্ড যোগ করা হয়। এই অপারেশনটি সাধারণত insert কিওয়ার্ড ব্যবহার করে চালানো হয়।

উদাহরণ:

Account acc = new Account(Name = 'Acme Corporation');
insert acc;

এখানে Acme Corporation নামে একটি নতুন Account রেকর্ড তৈরি করে ডেটাবেজে সেভ করা হয়েছে।

Bulk Insert

একাধিক রেকর্ড একসাথে Insert করতে List ব্যবহার করে Bulk Insert চালানো যায়।

উদাহরণ:

List<Account> accounts = new List<Account>{
    new Account(Name = 'Account 1'),
    new Account(Name = 'Account 2')
};
insert accounts;

২. Update Operation

Update অপারেশন ব্যবহার করে বিদ্যমান রেকর্ডের তথ্য পরিবর্তন করা হয়। এটি update কিওয়ার্ড ব্যবহার করে চালানো হয়।

উদাহরণ:

Account acc = [SELECT Id, Name FROM Account WHERE Name = 'Acme Corporation' LIMIT 1];
acc.Name = 'Acme Inc.';
update acc;

এখানে Acme Corporation নামে Account রেকর্ডটির নাম পরিবর্তন করে Acme Inc. করা হয়েছে।

Bulk Update

একাধিক রেকর্ড একসাথে Update করতে List ব্যবহার করে Bulk Update চালানো যায়।

উদাহরণ:

List<Account> accounts = [SELECT Id, Name FROM Account WHERE Industry = 'Technology'];
for (Account acc : accounts) {
    acc.Industry = 'Information Technology';
}
update accounts;

৩. Delete Operation

Delete অপারেশন ব্যবহার করে বিদ্যমান রেকর্ড ডেটাবেজ থেকে মুছে ফেলা হয়। এটি delete কিওয়ার্ড ব্যবহার করে চালানো হয়।

উদাহরণ:

Account acc = [SELECT Id FROM Account WHERE Name = 'Acme Inc.' LIMIT 1];
delete acc;

এখানে Acme Inc. নামে Account রেকর্ডটি ডিলিট করা হয়েছে।

Bulk Delete

একাধিক রেকর্ড একসাথে Delete করতে List ব্যবহার করে Bulk Delete চালানো যায়।

উদাহরণ:

List<Account> accounts = [SELECT Id FROM Account WHERE Industry = 'Obsolete'];
delete accounts;

৪. Undelete Operation

Undelete অপারেশন ব্যবহার করে পূর্বে ডিলিট করা রেকর্ড পুনরুদ্ধার করা হয়। এটি undelete কিওয়ার্ড ব্যবহার করে চালানো হয় এবং শুধুমাত্র রিসাইকেল বিনে থাকা রেকর্ডগুলোর ক্ষেত্রেই প্রযোজ্য।

উদাহরণ:

List<Account> deletedAccounts = [SELECT Id FROM Account WHERE IsDeleted = true LIMIT 1 ALL ROWS];
undelete deletedAccounts;

এখানে IsDeleted = true হওয়া রেকর্ডগুলো undelete অপারেশন ব্যবহার করে পুনরুদ্ধার করা হয়েছে।


৫. Merge Operation

Merge অপারেশন ব্যবহার করে দুটি বা ততোধিক রেকর্ড একত্রিত করে একটি রেকর্ড তৈরি করা যায়। সাধারণত এটি ডুপ্লিকেট রেকর্ড অপসারণের জন্য ব্যবহৃত হয়। merge অপারেশনে একটি master রেকর্ড এবং এক বা একাধিক duplicate রেকর্ড উল্লেখ করা হয়।

উদাহরণ:

Account masterAcc = [SELECT Id FROM Account WHERE Name = 'Primary Account' LIMIT 1];
Account duplicateAcc = [SELECT Id FROM Account WHERE Name = 'Duplicate Account' LIMIT 1];
merge masterAcc duplicateAcc;

এখানে Primary Account এবং Duplicate Account রেকর্ড দুটি মার্জ করে একটি একক রেকর্ড তৈরি করা হয়েছে।


DML Operations-এর Best Practices

Bulk DML Operations: একাধিক রেকর্ড প্রক্রিয়া করার সময় List ব্যবহার করে Bulk DML অপারেশন চালানো উচিত, যা গভর্নর লিমিটের মধ্যে থেকে কাজ করতে সহায়ক।

Try-Catch Block ব্যবহার: DML অপারেশন চালানোর সময় ত্রুটি মোকাবেলা করতে try-catch ব্লক ব্যবহার করা উচিত, যা DML Exception হ্যান্ডেল করতে সহায়ক।

উদাহরণ:

try {
    insert accounts;
} catch (DmlException e) {
    System.debug('DML Exception: ' + e.getMessage());
}

Partial DML (Database DML): Database.insert() বা Database.update() এর মতো DML মেথড ব্যবহার করে অপারেশনের আংশিক সফলতা নিশ্চিত করা যায়।

উদাহরণ:

Database.SaveResult[] results = Database.insert(accounts, false);
for (Database.SaveResult result : results) {
    if (result.isSuccess()) {
        System.debug('Record Inserted: ' + result.getId());
    } else {
        System.debug('Error: ' + result.getErrors()[0].getMessage());
    }
}

Avoid Hardcoded IDs: হার্ডকোড করা Id ব্যবহার এড়ানো উচিত এবং পরিবর্তনশীল ভ্যালু ব্যবহার করা উচিত, যা কোড রিইউজেবল করে।

Governor Limits বোঝা: Salesforce গভর্নর লিমিট মেনে DML অপারেশন চালানো উচিত এবং অতিরিক্ত DML অপারেশন এড়ানো উচিত।


সংক্ষেপে DML Operations

অপারেশনউদ্দেশ্য
INSERTনতুন রেকর্ড ডেটাবেজে যোগ করা
UPDATEবিদ্যমান রেকর্ডের ডেটা পরিবর্তন করা
DELETEবিদ্যমান রেকর্ড ডেটাবেজ থেকে মুছে ফেলা
UNDELETEডিলিট হওয়া রেকর্ড পুনরুদ্ধার করা
MERGEদুটি বা ততোধিক রেকর্ড একত্রিত করে একটি রেকর্ড তৈরি করা

Salesforce প্ল্যাটফর্মে DML অপারেশনস ব্যবহার করে ডেটা সংযোজন, সংশোধন, মুছে ফেলা এবং একত্রিত করার প্রক্রিয়া সহজে সম্পন্ন করা যায়। DML অপারেশনস-এর Best Practices অনুসরণ করে কার্যকরী ও গভর্নর লিমিটের মধ্যে থেকে ডেটা পরিচালনা করা সম্ভব।

common.content_added_by

Database Methods এবং Bulk DML অপারেশনস

209
209

Database Methods এবং Bulk DML Operations Salesforce-এ ডেটা ম্যানিপুলেশন এবং ডেটাবেজে রেকর্ড ইনসার্ট, আপডেট, বা ডিলিট করার জন্য ব্যবহৃত হয়। এগুলো Salesforce-এর গভর্নর লিমিট মেনে একাধিক রেকর্ডে কার্যকরী ডেটা প্রক্রিয়াকরণে সহায়ক।


Database Methods এর ধারণা

Salesforce-এ ডেটা সংশোধন বা ম্যানিপুলেশনের জন্য DML স্টেটমেন্ট যেমন insert, update, delete ইত্যাদি ব্যবহার করা যায়। তবে, এই DML স্টেটমেন্টগুলো Bulk DML বা বড় ডেটা সেট নিয়ে কাজ করার সময় Salesforce এর গভর্নর লিমিট-এর মধ্যে কার্যকরী না হতে পারে। Database Methods এই সমস্যা সমাধানে সহায়ক এবং Bulk DML অপারেশনে আরও কার্যকর।

Database Methods Apex Database ক্লাসের মাধ্যমে সরবরাহ করা হয়, এবং এগুলোতে allOrNone প্যারামিটার থাকে, যা বলে দেয় পুরো অপারেশনটি একবারে সফল হবে কিনা বা আংশিকভাবে সম্পন্ন হবে। এই প্যারামিটার false সেট করলে ত্রুটি ঘটলেও কাজটি আংশিকভাবে সম্পন্ন হতে পারে, যা বড় ডেটা সেট বা Bulk DML অপারেশনের জন্য কার্যকর।

Database Method এর সাধারণ উদাহরণ

List<Account> accounts = new List<Account>{
    new Account(Name = 'Tech Solutions'),
    new Account(Name = 'ABC Corporation'),
    new Account(Name = 'XYZ Industries')
};

// Database.insert() ব্যবহার করে DML অপারেশন, allOrNone = false
Database.SaveResult[] results = Database.insert(accounts, false);

for (Database.SaveResult result : results) {
    if (result.isSuccess()) {
        System.debug('Record inserted successfully: ' + result.getId());
    } else {
        System.debug('Error inserting record: ' + result.getErrors()[0].getMessage());
    }
}
  • এখানে Database.insert মেথডে allOrNone = false সেট করা হয়েছে, যার ফলে কোনো রেকর্ড ব্যর্থ হলেও অন্যান্য রেকর্ড সেভ হবে।
  • SaveResult[] অর্রে ব্যবহার করে সফল বা ব্যর্থ অপারেশন ট্র্যাক করা হয়েছে।

Bulk DML অপারেশন

Bulk DML Operations মূলত একাধিক রেকর্ড নিয়ে কার্যকরী ডেটা প্রক্রিয়াকরণে ব্যবহৃত হয়। Salesforce এর গভর্নর লিমিটের কারণে প্রতিটি DML অপারেশন চালনার সময় সর্বাধিক ১০,০০০ রেকর্ড আপডেট বা ইন্সার্ট করা সম্ভব। Bulk DML অপারেশন Salesforce-এ ডেটা প্রক্রিয়াকরণের পারফরম্যান্স বাড়ায় এবং গভর্নর লিমিট বজায় রাখতে সহায়ক।

Bulk DML অপারেশনগুলোতে একাধিক রেকর্ডকে একত্রে প্রক্রিয়া করার জন্য তালিকা (List) ব্যবহার করা হয়।

Bulk DML অপারেশনের উদাহরণ

List<Account> accountList = new List<Account>();

for (Integer i = 1; i <= 1000; i++) {
    accountList.add(new Account(Name = 'Account ' + i));
}

// Bulk Insert অপারেশন
insert accountList;
  • এখানে ১০০০টি Account রেকর্ড accountList-এ যুক্ত করা হয়েছে এবং একত্রে insert DML অপারেশন চালানো হয়েছে।

Bulk DML অপারেশন চালানোর সময় Salesforce গভর্নর লিমিটের সীমার মধ্যে থেকে কার্যকরী ডেটা প্রসেসিং করা সম্ভব হয়।


Database Methods এর ধরনসমূহ

  1. Database.insert(records, allOrNone): রেকর্ড ইনসার্ট করে। allOrNone false দিলে আংশিক সফল হতে পারে।
  2. Database.update(records, allOrNone): রেকর্ড আপডেট করে। allOrNone false দিলে ত্রুটি সহ্য করে আংশিকভাবে সম্পন্ন হবে।
  3. Database.delete(records, allOrNone): রেকর্ড মুছে ফেলে। allOrNone false সেট করলে আংশিকভাবে কাজ করে।
  4. Database.undelete(records, allOrNone): মুছে ফেলা রেকর্ড পুনরুদ্ধার করে।
  5. Database.upsert(records, externalId, allOrNone): আপডেট বা ইন্সার্ট করে, এবং যদি externalId মিলে যায় তবে আপডেট করে, অন্যথায় নতুন রেকর্ড ইনসার্ট করে।
  6. Database.merge(masterRecord, duplicateRecords): ডুপ্লিকেট রেকর্ডগুলোকে একটি প্রধান রেকর্ডে মার্জ করে।

Database Methods এর সুবিধা

  • Error Handling: Database Methods allOrNone প্যারামিটার ব্যবহার করে আংশিক সফল অপারেশন নিশ্চিত করে, যার ফলে কোনো রেকর্ড ব্যর্থ হলেও অন্য রেকর্ডগুলো সফলভাবে প্রসেস করা যায়।
  • SaveResult এবং DeleteResult: Database Methods সফল এবং ব্যর্থ ডেটা অপারেশন ট্র্যাক করার জন্য SaveResult এবং DeleteResult প্রদান করে।
  • Bulk Processing Support: একাধিক রেকর্ড একত্রে প্রক্রিয়া করার জন্য কার্যকরী, যা বড় ডেটাসেট পরিচালনা সহজ করে।

Bulk DML অপারেশনের সুবিধা

  1. গভর্নর লিমিটের সীমাবদ্ধতা মেনে চলা: Bulk DML গভর্নর লিমিট মেনে চলতে সহায়ক, কারণ এটি একবারে একাধিক রেকর্ডে কার্যকরী হয়।
  2. পারফরম্যান্স বৃদ্ধি: Bulk DML অপারেশনের মাধ্যমে একাধিক রেকর্ড একত্রে প্রক্রিয়া করা যায়, যা ডেটা ম্যানিপুলেশনের পারফরম্যান্স বৃদ্ধি করে।
  3. সহজ এবং দ্রুত প্রক্রিয়াকরণ: একাধিক রেকর্ডে অপারেশন চালানোর জন্য এটি অত্যন্ত কার্যকর এবং কোড সংক্ষিপ্ত রাখে।

উদাহরণ: Bulk DML অপারেশনে Database Methods এর ব্যবহার

নিচের উদাহরণে একটি তালিকায় ৫০০টি Contact রেকর্ড যোগ করে Database.insert() ব্যবহার করা হয়েছে এবং allOrNone = false সেট করা হয়েছে।

List<Contact> contactList = new List<Contact>();

for (Integer i = 1; i <= 500; i++) {
    contactList.add(new Contact(FirstName = 'First' + i, LastName = 'Last' + i));
}

// Database.insert ব্যবহার করে Bulk DML অপারেশন
Database.SaveResult[] results = Database.insert(contactList, false);

for (Database.SaveResult result : results) {
    if (result.isSuccess()) {
        System.debug('Contact Inserted Successfully: ' + result.getId());
    } else {
        System.debug('Error inserting Contact: ' + result.getErrors()[0].getMessage());
    }
}
  • Database.insert(contactList, false): allOrNone false সেট করার কারণে ত্রুটি সহ্য করে অবশিষ্ট রেকর্ডগুলো সেভ হবে।
  • SaveResult ব্যবহার করে প্রতিটি রেকর্ডের সফলতা বা ব্যর্থতা ট্র্যাক করা হয়েছে।

সংক্ষেপে:

  • Database Methods DML অপারেশনের সময় আংশিক সফলতা নিশ্চিত করতে allOrNone প্যারামিটার ব্যবহার করে।
  • Bulk DML Operations একাধিক রেকর্ড একত্রে প্রক্রিয়া করে, যা গভর্নর লিমিটের সীমার মধ্যে থেকে কার্যকরী ডেটা প্রসেসিং নিশ্চিত করে।

এইভাবে, Database Methods এবং Bulk DML Operations Salesforce প্ল্যাটফর্মে কার্যকরী ডেটা ম্যানিপুলেশনে গুরুত্বপূর্ণ ভূমিকা পালন করে এবং বড় ডেটাসেট নিয়ে কাজ করার সময় কোড পারফরম্যান্স ও কার্যকারিতা বাড়ায়।

common.content_added_by

DML Exception Handling এবং Error Management

210
210

DML Exception Handling এবং Error Management হলো Apex কোডে ডেটা ম্যানিপুলেশন অপারেশনে (যেমন Insert, Update, Delete) কোনো ত্রুটি হলে তা সঠিকভাবে শনাক্ত এবং হ্যান্ডেল করার প্রক্রিয়া। Salesforce ডেটাবেজে DML অপারেশন চালানোর সময় যদি কোনো সমস্যা বা ত্রুটি ঘটে, তাহলে DML Exception তৈরি হয়। Exception Handling এর মাধ্যমে কোডে ত্রুটি সনাক্ত করে সঠিক পদক্ষেপ গ্রহণ করা যায়, যা অ্যাপ্লিকেশনের স্থায়িত্ব এবং পারফরম্যান্স উন্নত করে।


DML Exception Handling

DML অপারেশন চলাকালীন কোনো ত্রুটি ঘটলে Salesforce DmlException তৈরি করে। DML Exception হ্যান্ডল করার জন্য try-catch ব্লক ব্যবহার করা হয়। catch ব্লকের মাধ্যমে ত্রুটি সনাক্ত করে প্রয়োজনীয় পদক্ষেপ নেয়া যায়।

DML Exception Handling এর উদাহরণ

Account newAccount = new Account(Name = 'Test Account');

try {
    // DML অপারেশন, যদি কোনো ত্রুটি ঘটে তবে Exception তৈরি হবে
    insert newAccount;
    System.debug('Account inserted successfully');
} catch (DmlException e) {
    System.debug('Error occurred: ' + e.getMessage());
}
  • এখানে try ব্লকে insert DML অপারেশনটি সম্পন্ন করা হয়েছে এবং catch ব্লকে DmlException হ্যান্ডল করা হয়েছে।
  • ত্রুটি ঘটলে catch ব্লকে থাকা কোড এক্সিকিউট হবে এবং getMessage() মেথড ত্রুটির বার্তা প্রদর্শন করবে।

Bulk DML Exception Handling: Database Methods এর মাধ্যমে

বড় ডেটাসেট বা Bulk DML অপারেশনের সময় যখন অনেকগুলো রেকর্ডে অপারেশন চালানো হয়, তখন কিছু রেকর্ড সফল হতে পারে এবং কিছু ত্রুটির কারণে ব্যর্থ হতে পারে। Bulk DML Exception Handling করার জন্য Database.insert(), Database.update() এর মতো Database Methods ব্যবহার করা হয়। Database Methods-এ allOrNone প্যারামিটার false সেট করা হলে, ত্রুটি ঘটলেও অবশিষ্ট রেকর্ড সফলভাবে প্রক্রিয়া করা হয়।

উদাহরণ: Bulk DML Exception Handling

List<Account> accountList = new List<Account>{
    new Account(Name = 'Account 1'),
    new Account(Name = ''), // Empty name, will cause an error
    new Account(Name = 'Account 3')
};

// Database.insert() ব্যবহার করে Bulk DML অপারেশন
Database.SaveResult[] results = Database.insert(accountList, false);

for (Database.SaveResult result : results) {
    if (result.isSuccess()) {
        System.debug('Account Inserted Successfully: ' + result.getId());
    } else {
        System.debug('Error inserting Account: ' + result.getErrors()[0].getMessage());
    }
}
  • এখানে Database.insert(accountList, false) ব্যবহার করা হয়েছে, যেখানে allOrNone false সেট করা হয়েছে। ত্রুটি ঘটলেও অবশিষ্ট রেকর্ড সেভ হবে।
  • SaveResult ব্যবহার করে সফল ও ব্যর্থ রেকর্ডগুলো আলাদাভাবে ট্র্যাক করা হয়েছে।

DML Exception Handling এর সাধারণ Exception Properties

Exception Handling এর সময় কয়েকটি গুরুত্বপূর্ণ প্রোপার্টি রয়েছে, যা Exception সম্পর্কে বিস্তারিত তথ্য প্রদান করে:

  1. getMessage(): ত্রুটির বিস্তারিত বার্তা প্রদান করে।
  2. getNumDml(): DML অপারেশনের সংখ্যার উপর ভিত্তি করে Exception তৈরি হয়েছে কিনা।
  3. getDmlFields(i): ত্রুটির ক্ষেত্রে নির্দিষ্ট ফিল্ডের তথ্য প্রদান করে।
  4. getDmlId(i): যেই রেকর্ডের কারণে Exception ঘটেছে, তার আইডি প্রদান করে।

উদাহরণ:

try {
    Account newAccount = new Account(Name = '');
    insert newAccount;
} catch (DmlException e) {
    System.debug('Error: ' + e.getMessage());
    System.debug('Affected Fields: ' + e.getDmlFields(0));
    System.debug('DML Record ID: ' + e.getDmlId(0));
}

DML Error Management স্ট্র্যাটেজি

DML অপারেশনের সময় ত্রুটি হ্যান্ডল করার জন্য কিছু গুরুত্বপূর্ণ Error Management স্ট্র্যাটেজি নিচে উল্লেখ করা হলো:

Partial Success Handling: বড় ডেটাসেটের ক্ষেত্রে allOrNone প্যারামিটার false করে আংশিক সফলতা নিশ্চিত করা যায়। এতে কিছু রেকর্ড ব্যর্থ হলেও অবশিষ্ট রেকর্ড সফলভাবে প্রক্রিয়া হবে।

Error Logging: ত্রুটির লোগ রাখা একটি ভালো স্ট্র্যাটেজি, যাতে পরবর্তীতে তা বিশ্লেষণ করা যায়। ত্রুটি লোগ করে সঠিক সমাধান খুঁজে বের করা সহজ হয়।

User Notification: ত্রুটি হলে ব্যবহারকারীকে তাৎক্ষণিকভাবে অবহিত করা প্রয়োজন। কাস্টম ত্রুটি বার্তা ব্যবহারকারীদেরকে সঠিক তথ্য প্রদান করে।

Retry Mechanism: কিছু ক্ষেত্রে ত্রুটি ঘটলে DML অপারেশন পুনরায় চালনা করার প্রয়োজন হতে পারে। এমন অবস্থায় Retry Mechanism ব্যবহার করা যেতে পারে।

Custom Validation Messages: যখন কোনো ডেটা ভুল ইনপুট হয়, তখন কাস্টম ভ্যালিডেশন বার্তা ব্যবহারকারীদেরকে সমস্যার সঠিক কারণ বুঝতে সাহায্য করে।


Exception Handling এবং Error Management এর গুরুত্ব

  • কোডের স্থায়িত্ব বৃদ্ধি করে: Exception Handling সঠিকভাবে প্রয়োগ করলে কোড স্থায়িত্ব বৃদ্ধি পায় এবং ব্যবহারকারীদের জন্য অ্যাপ্লিকেশন আরও নির্ভরযোগ্য হয়।
  • ব্যবহারকারীদের অভিজ্ঞতা উন্নত করে: কাস্টম ত্রুটি বার্তা এবং লগ ব্যবহার করে ত্রুটি সম্পর্কে ব্যবহারকারীদের সঠিক তথ্য প্রদান করা যায়, যা তাদের অভিজ্ঞতা উন্নত করে।
  • ত্রুটি বিশ্লেষণে সহায়ক: Exception Handling এবং Error Logging এর মাধ্যমে ত্রুটির সঠিক কারণ নির্ধারণ করা এবং সেগুলোর সমাধান করা সহজ হয়।

সারসংক্ষেপ

  • DML Exception Handling Salesforce ডেটাবেজে ত্রুটি হ্যান্ডলিংয়ের জন্য try-catch ব্লক ব্যবহার করে।
  • Database Methods যেমন Database.insert() এবং Database.update() ব্যবহার করে আংশিক সফলতা অর্জন করা যায়।
  • Bulk DML Exception Handling বড় ডেটাসেটের ক্ষেত্রে কার্যকর এবং গভর্নর লিমিটের মধ্যে কার্যকরী ডেটা প্রসেসিং নিশ্চিত করে।
  • Error Management স্ট্র্যাটেজি ব্যবহার করে ত্রুটি সঠিকভাবে হ্যান্ডল করা এবং ব্যবহারকারীদের অভিজ্ঞতা উন্নত করা সম্ভব।

DML Exception Handling এবং সঠিক Error Management স্ট্র্যাটেজি প্রয়োগ করে Salesforce Apex কোডে ডেটা ম্যানিপুলেশন কার্যক্রম আরও নির্ভরযোগ্য ও কার্যকরী করা যায়।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion